home *** CD-ROM | disk | FTP | other *** search
- /* DESCRIPTION DSPJOBLST COMMAND PROCESSING PROGRAM */
- /* PROGRAMMER DAVID EDLEN */
- /* */
- PGM PARM(&JOB20)
- DCL &JOB20 *CHAR 20
- DCL &JOB *CHAR 10
- DCL &USR *CHAR 10
- DCL &NBR *CHAR 6
- DCL &SENDER *CHAR 80
- DCL &PGMQ *CHAR 10
- DCL &MULTIPLE *LGL
- DCL &MSGID *CHAR 7
- DCL &MSGDTA *CHAR 132
- DCL &QLEN *DEC 5 VALUE(26)
- DCL &DATA26 *CHAR 26
- DCL &COUNT *DEC 3
- DCL &OPTION *CHAR 1
-
- MONMSG CPF0000 EXEC(GOTO ERROR)
-
- SNDPGMMSG MSG($) TOPGMQ(*SAME)
- RCVMSG SENDER(&SENDER)
- CHGVAR &PGMQ VALUE(%SST(&SENDER 27 10))
-
- DSPJOB: CHGVAR &MULTIPLE '0'
- CHGVAR &JOB VALUE(%SST(&JOB20 1 10))
- CHGVAR &USR VALUE(%SST(&JOB20 11 10))
-
- IF (&USR *NE ' ') DO
- DSPJOB JOB(&JOB.&USR)
- MONMSG CPF1069 EXEC(CHGVAR &MULTIPLE '1')
- ENDDO
- ELSE DO
- DSPJOB JOB(&JOB)
- MONMSG CPF1069 EXEC(CHGVAR &MULTIPLE '1')
- ENDDO
-
- IF &MULTIPLE DO
- CHKOBJ OBJ(@JOBLIST.QTEMP) OBJTYPE(*DTAQ)
- MONMSG CPF9801 EXEC(DO)
- CRTDTAQ DTAQ(@JOBLIST.QTEMP) MAXLEN(26) TEXT('Job +
- list for DSPJOBLST command.')
- ENDDO
-
- CHGVAR &COUNT VALUE(0)
-
- MSGDTA: RCVMSG MSGID(&MSGID) MSGDTA(&MSGDTA)
- IF (&MSGID = CPF0906) DO
- CHGVAR &DATA26 VALUE(%SST(&MSGDTA 1 26))
- CALL QSNDDTAQ PARM(@JOBLIST QTEMP &QLEN &DATA26)
- CHGVAR &COUNT VALUE(&COUNT + 1)
- ENDDO
-
- IF (&MSGID *NE ' ' *AND &COUNT *LT 50) GOTO MSGDTA
- RMVMSG CLEAR(*ALL)
- CHGVAR &OPTION VALUE('0')
-
-
- DSPJOBLST: CALL DSPJBLR PARM(&JOB &USR &NBR &OPTION &PGMQ)
- RMVMSG CLEAR(*ALL)
-
- IF (&OPTION *EQ '1') DO
- DSPJOB JOB(&JOB.&USR.&NBR)
- MONMSG CPF0000 EXEC(GOTO DSPJOBLST)
- ENDDO
-
- IF (&OPTION *EQ '2') DO
- DSPJOBLOG JOB(&JOB.&USR.&NBR)
- MONMSG CPF0000 EXEC(DO)
- RMVMSG CLEAR(*ALL)
- DSPSPLF FILE(QPJOBLOG) JOB(&JOB.&USR.&NBR)
- MONMSG CPF0000 EXEC(GOTO DSPJOBLST)
- ENDDO
- ENDDO
-
- IF (&OPTION *EQ '5') GOTO DSPJOB
- IF (&OPTION *NE '9') GOTO DSPJOBLST
- ENDDO
-
- GOTO ENDPGM
-
-
- ERROR: CHGVAR &COUNT VALUE(0)
- RCVMSG: RCVMSG MSGID(&MSGID) MSGDTA(&MSGDTA)
-
- CHGVAR &COUNT VALUE(&COUNT+1)
- IF (&COUNT *GT 100) GOTO ENDPGM
-
- IF (%SST(&MSGID 1 2) *EQ CP) DO
- SNDPGMMSG MSGID(&MSGID) MSGF(QCPFMSG) MSGDTA(&MSGDTA) +
- MSGTYPE(*DIAG)
- MONMSG CPF0000
- ENDDO
-
- IF (&MSGID *NE ' ') GOTO RCVMSG
- ELSE SNDPGMMSG MSGID(CPF9899) MSGF(QCPFMSG) +
- MSGTYPE(*ESCAPE)
-
- ENDPGM: ENDPGM